#ifndef RBTREE_H
#define RBTREE_H
#include "BSTree.h"

#define BLACK false
#define RED true

template<typename T>
class RBTree : public BSTree<T> {
        public :
            RBTree () : BSTree<T>() {}
	    RBTree (T e, u64 k = 0, RBTree *l = NULL, RBTree *r = NULL)
                : BSTree<T>(e,k,l,r), _color(BLACK), _bh(2) 
            {}
            ~RBTree() {}

            int insert(const T&, u64);

        protected:
            unsigned int _bh; //Black Height
            bool _color; //Black / Red
};


#endif /* RBTREE_H */
